package com.ndp.fb.model.business.bo.useraudience.result;

import com.alibaba.fastjson.annotation.JSONField;
import com.ndp.fb.model.business.bo.targetingspec.*;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.util.List;

/**
 * Created by Sisi on 14-11-14.
 */
@Setter
@Getter
@NoArgsConstructor
public class FBTargetingSpecs {
    @JSONField(name = "user_os")
    private List<String> userOs;

    @JSONField(name = "user_device")
    private List<String> userDevice;

    @JSONField(name = "wireless_carrier")
    private List<String> wirelessCarrier;

    @JSONField(name = "age_min")
    private Integer ageMin;

    @JSONField(name = "age_max")
    private Integer ageMax;

    @JSONField(name = "genders")
    private List<Integer> genders;

    @JSONField(name = "geo_locations")
    private Location geoLocations;

    /**
     * v0.9.3 add by sisi for 排除地区
     */
    @JSONField(name = "excluded_geo_locations")
    private Location excludedGeoLocations;

    @JSONField(name = "interests")
    private List<Interest> interests;

    @JSONField(name = "connections")
    private List<FacebookConnection> connections;

    @JSONField(name = "excluded_connections")
    private List<FacebookConnection> excludedConnections;

    @JSONField(name = "interested_in")
    private List<Integer> interestedIn;

    @JSONField(name = "relationship_statuses")
    private List<Integer> relationshipStatuses;

    @JSONField(name = "locales")
    private List<Integer> locales;

    @JSONField(name = "user_adclusters")
    private List<BroadCategory> userAdclusters;

    @JSONField(name = "page_types")
    private List<String> pageTypes;

    @JSONField(name = "behaviors")
    private List<Behavior> behaviors;

    @JSONField(name = "custom_audiences")
    private List<CustomAudience> customAudiences;

    @JSONField(name = "excluded_custom_audiences")
    private List<CustomAudience> excludedCustomAudiences;

    @JSONField(name = "education_statuses")
    private List<Integer> educationStatuses;

    @JSONField(name = "education_majors")
    private List<EducationMajor> educationMajors;

    @JSONField(name = "education_schools")
    private List<EducationSchool> educationSchools;

    @JSONField(name = "college_years")
    private List<Long> collegeYear;

    @JSONField(name = "work_employers")
    private List<WorkEmployer> workEmployers;

    @JSONField(name = "work_positions")
    private List<WorkPosition> workPositions;

    @JSONField(name = "industries")
    private List<Industry> industries;

    @JSONField(name = "ethnic_affinity")
    private List<EthnicAffinity> ethnicAffinities;

    @JSONField(name = "generation")
    private List<Generation> generations;

    @JSONField(name = "family_statuses")
    private List<FamilyStatus> familyStatuses;

    @JSONField(name = "politics")
    private List<Politic> politics;

    @JSONField(name = "life_events")
    private List<LifeEvent> lifeEvents;

    @JSONField(name = "product_audience_specs")
    private List<ProductAudienceSpec> productAudienceSpecs;

}
